Hệ thống quản lý phòng khám trực tuyến bằng PHP

1 <?php
2     @set_time_limit(
0);
3     $currDir = dirname(__FILE__);
4     require(
"{$currDir}/incCommon.php");
5     $GLOBALS[
'page_title'] = $Translation['data ownership assign'];
6     include(
"{$currDir}/incHeader.php");
7
8     
// get a list of tables
9     $arrTables = getTableList();
10     $arrTablesNoOwners = array();
11
12     
// get a list of tables with records that have no owners
13     
foreach($arrTables as $tn => $tc){
14         $countOwned = sqlValue(
"select count(1) from membership_userrecords where tableName='{$tn}'");
15         $countAll = sqlValue(
"select count(1) from `{$tn}`");
16
17         
if($countAll > $countOwned){
18             $arrTablesNoOwners[$tn] = ($countAll - $countOwned);
19         }
20     }
21
22     
// process ownership request
23     
if(count($_POST)){
24         ignore_user_abort();
25         
foreach($arrTablesNoOwners as $tn => $tc){
26             $groupID = intval($_POST[
"ownerGroup_$tn"]);
27             $memberID = makeSafe(strtolower($_POST[
"ownerMember_$tn"]));
28             $pkf = getPKFieldName($tn);
29
30             
if($groupID){
31                 $insertBegin =
"insert ignore into membership_userrecords (tableName, pkValue, groupID, memberID, dateAdded, dateUpdated) values ";
32                 $ts = time();
33                 $assigned =
0;
34                 $tempStatus =
'';
35
36                 $res = sql(
"select `$tn`.`$pkf` from `$tn`", $eo);
37                 
while($row = db_fetch_row($res)){
38                     $pkValue = makeSafe($row[
0], false);
39                     $insert .=
"('$tn', '$pkValue', '$groupID', ".($memberID ? "'$memberID'" : "NULL").", $ts, $ts),";
40                     
if(strlen($insert) > 50000){
41                         sql($insertBegin . substr($insert,
0, -1), $eo);
42                         $assigned += @db_affected_rows(db_link());
43                         $insert =
'';
44                     }
45                 }
46                 
if($insert != ''){
47                     sql($insertBegin . substr($insert,
0, -1), $eo);
48                     $assigned += @db_affected_rows(db_link());
49                     $insert =
'';
50                 }
51
52                 
if ($memberID){
53                     $tempStatus = $Translation[
"assigned table records to group and member"];
54                     $tempStatus = str_replace (
"<MEMBERID>" , $memberID , $tempStatus );
55                 }
else{
56                     $tempStatus = $Translation[
"assigned table records to group"];
57                 }
58
59                 $originalValues = array (
'<NUMBER>','<TABLE>' , '<GROUP>' );
60                 $number = number_format($assigned);
61                 $
group = sqlValue("select name from membership_groups where groupID='$groupID'");
62                 $replaceValues = array ( $number , $tn , $
group );
63                 $tempStatus = str_replace ( $originalValues , $replaceValues , $tempStatus );
64
65                 $status.= $tempStatus.
".<br>";
66             }
67         }
68
69         
// refresh the list of tables with records that have no owners
70         unset($arrTablesNoOwners);
71         
foreach($arrTables as $tn=>$tc){
72             $countOwned=sqlValue(
"select count(1) from membership_userrecords where tableName='$tn'");
73             $countAll=sqlValue(
"select count(1) from `$tn`");
74
75             
if($countAll>$countOwned){
76                 $arrTablesNoOwners[$tn]=($countAll-$countOwned);
77             }
78         }
79
80     }
81
82 ?>
83
84 <div
class="page-header"><h1><?php echo $Translation['data ownership assign']; ?></h1></div>
85
86 <?php
87
88     
// if all records of all tables have owners, no need to continue
89     
if(!is_array($arrTablesNoOwners)){
90         echo
"<div class=\"alert alert-success\"><i class=\"glyphicon glyphicon-ok\"></i> {$Translation['records ownership done']}</div>";
91         include(
"$currDir/incFooter.php");
92         exit;
93     }
94
95     
// show status of previous assignments
96     
if($status!=''){
97         echo
"<div class=\"alert alert-danger\">$status</div>";
98     }
99
100     
// compose groups drop-down
101     $htmlGroups=
"<option value=\"0\">--- {$Translation['select group']} ---</option>";
102     $res=sql(
"select groupID, name from membership_groups order by name", $eo);
103     
while($row=db_fetch_row($res)){
104         $htmlGroups.=
"<option value=\"$row[0]\">$row[1]</option>";
105     }
106     $htmlGroups.=
"</select>";
107 ?>
108
109 <script>
110     
var members=new Array();
111     <?php
112         $res=sql(
"select groupID, lcase(memberID) from membership_users order by groupID, memberID", $eo);
113         
while($row=db_fetch_row($res)){
114             $members[$row[
0]].="'".$row[1]."',";
115         }
116
117         
foreach($members as $groupID=>$members){
118             echo
"\n\tmembers[$groupID]=[".substr($members, 0, -1)."];";
119         }
120     ?>
121
122     function populateMembers(memberSelect, groupSelect){
123         
var m=document.getElementsByName(memberSelect)[0];
124         
var g=document.getElementsByName(groupSelect)[0];
125
126         
if(m.options.length>0){
127             
var mc=m.options.length;
128             
for(var i=0; i<mc; i++){
129                 m.options[
0]=null;
130             }
131         }
132
133         
var gval=g.options[g.selectedIndex].value;
134
135         
if(gval==0 || members[gval] == undefined){
136             
return 0;
137         }
138
139         
for(var j=0; j<members[gval].length; j++){
140             m.options[j]=
new Option(members[gval][j], members[gval][j], false, false);
141         }
142
143         
return 0;
144     }
145     </script>
146
147 <form method=
"post" action="pageAssignOwners.php">
148     <p>
149         <?php echo $Translation[
'data ownership'] ; ?>
150     </p>
151
152     <div
class="table-responsive"><table class="table">
153         <thead><tr>
154             <th><?php echo $Translation[
"table"] ; ?></th>
155             <th><?php echo $Translation[
"records with no owners"] ; ?></th>
156             <th><?php echo $Translation[
"new owner group"] ; ?></th>
157             <th><?php echo $Translation[
"new owner member"] ; ?></th>
158         </tr></thead>
159
160         <tbody>
161 <?php
162     
foreach($arrTablesNoOwners as $tn=>$countNoOwners){
163         ?>
164         <tr>
165             <td><?php echo $arrTables[$tn]; ?></td>
166             <td align=
"right"><?php echo number_format($countNoOwners); ?>&nbsp;</td>
167             <td><
select onchange="populateMembers('ownerMember_<?php echo $tn; ?>', 'ownerGroup_<?php echo $tn; ?>');" name="ownerGroup_<?php echo $tn; ?>"><?php echo $htmlGroups; ?></td>
168             <td><
select style="width: 120px;" name="ownerMember_<?php echo $tn; ?>"></select></td>
169             </tr>
170         <?php
171     }
172 ?>
173         <tr><td colspan=
"4" class="text-center">
174             <input type=
"button" value="<?php echo $Translation['cancel'] ; ?>" onclick="window.location='pageHome.php';">
175             <input type=
"button" name="assignOwners" value="<?php echo $Translation["assign new owners"] ; ?>" onclick="this.value='<?php echo $Translation["please wait"] ; ?>'; this.onclick='return FALSE;'; this.disabled=true; document.getElementsByTagName('form')[0].submit();">
176             </td></tr>
177         </tbody>
178         </table></div>
179
180         <p><?php echo $Translation[
"if no owner member assigned"] ; ?></p>
181     </form>
182
183 <?php
184     include(
"$currDir/incFooter.php");
185 ?>


Gõ tìm kiếm nhanh...